#include"UdpServer.hpp"
#include<memory>

// //使用手册：当命令行输入错误时，可提示正确启动信息
// void Usage(std::string proc)
// {
//     std::cout << "\nUsage:" << proc << " port\n" << std::endl;
// }

// // 服务端：启动服务端所需指令 ./XXX port
// int main(int argc, char **argv)
// {
//     // 1、检测输入指令是否正确：关系到服务器启动
//     if (argc != 2)
//     {
//         Usage(argv[0]);
//         exit(1);
//     }
    
//     // 2、获取端口号
//     uint16_t server_port=atoi(argv[1]);

//     // 3、使用智能指针来管理服务器
//     std::unique_ptr<UdpServer> server(new UdpServer(server_port));
//     server->InitServer();//初始化服务器
//     server->Start();//启动服务器

//     return 0;
// }


void Usage(std::string proc)
{
    std::cout<<"\n Usage: "<< proc << " port\n" << std::endl;
}


// ./XXX port
int main(int argc, char* argv[])
{
    if(argc != 2 )
    {
        Usage(argv[0]);
        exit(1);
    }

    uint16_t port = atoi(argv[1]);

    std::unique_ptr<UdpServer> server(new UdpServer(port));
    server->ServerInit();
    server->Start();
    return 0;
}